home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / TEXT.D < prev    next >
Encoding:
Modula Definition  |  1990-12-11  |  4.0 KB  |  103 lines

  1. DEFINITION MODULE Text;
  2.  
  3. (*
  4.  * Dieses Modul stellt die Funktionen zum textuellen Bearbeiten von Dateien
  5.  * zur Verfügung.
  6.  *)
  7.  
  8.  
  9. FROM Files IMPORT File;
  10.  
  11.  
  12. PROCEDURE Write (f: File; ch: CHAR);
  13.   (* Schreibt ein Zeichen in die Datei. *)
  14.  
  15. PROCEDURE WriteString (f: File; REF str: ARRAY OF CHAR);
  16.   (* Schreibt den String in die Datei. *)
  17.  
  18. PROCEDURE WriteLn (f: File);
  19.   (* Schreibt ein CR (15C) und ein LF (12C) in die Datei. *)
  20.  
  21. PROCEDURE WritePg (f: File);
  22.   (* Bildschirmlöschen bzw. Seitenvorschub (FF, 14C) *)
  23.  
  24.  
  25.  
  26. PROCEDURE EOL (f: File): BOOLEAN;
  27.   (* Liefert TRUE, wenn ein Zeilenende (CR oder LF) beim Lesen aus der
  28.    * Datei mittels 'Read...' erreicht wurde oder die Funktion 'EOF'
  29.    * TRUE liefert.
  30.    *)
  31.  
  32.  
  33. PROCEDURE Read (f: File; VAR ch: CHAR);
  34.   (* Holt ein Zeichen aus der Datei. Wenn die Datei nicht auf Disk o.ä.
  35.    * eröffnet ist, wird solange gewartet, bis ein Zeichen zur Verfügung steht.
  36.    * Wenn die Datei auf 'CON:' eröffnet ist, werden die eingegebenen Zeichen,
  37.    * sofern sie keine Controlzeichen sind, auf dem Bildschirm ausgegeben.
  38.    *)
  39.  
  40. PROCEDURE ReadFromLine (f: File; VAR str: ARRAY OF CHAR);
  41.   (* Es wird zeichenweise aus der Datei gelesen, bis der String voll ist
  42.    * oder das Zeilenende erreicht wird. Mit dem Backspace-Zeichen kann
  43.    * das zuletzt eingegebene Zeichen wieder gelöscht werden.
  44.    * Liefert die Funktion 'EOL' danach TRUE, wurde die Eingabe mit <Return>
  45.    * (LF oder CR) beendet, ansonsten war der String vollständig gefüllt.
  46.    * Bei Eingabe von Tastatur werden eingegebene Controlzeichen nicht
  47.    * ausgegeben; nur bei der Return-Taste oder Ctrl-J wird CR/LF ausgegeben.
  48.    *)
  49.  
  50. PROCEDURE ReadToken (f: File; VAR str: ARRAY OF CHAR);
  51.   (* Es wird zeichenweise aus der Datei gelesen, bis der String voll ist,
  52.    * das Zeilenende erreicht oder ein Trennzeichen eingelesen wird.
  53.    * Führende Trennzeichen vor einem Wort ('Token') werden zudem überlesen
  54.    * und nicht in den String aufgenommen.
  55.    * Diese Trennzeichen sind in MOSConfig.Separators definiert und
  56.    * sind normalerweise alle Control- und das Space- (Leertaste) Zeichen.
  57.    * Mit 'TermCH' kann das Trennzeichen ermittelt werden. Ist dieses
  58.    * Zeichen kein 'Separator', wurde die Eingabe beendet, weil der
  59.    * String vollgelesen war.
  60.    *)
  61.  
  62. PROCEDURE TermCH (f: File): CHAR;
  63.   (* Liefert das Trennzeichen, das die letzte Eingabe beendete. *)
  64.  
  65. PROCEDURE UndoRead (f: File);
  66.   (* Die Funktion stellt das zuletzt gelesene Zeichen wieder zurück, sodaß
  67.    * es beim nächsten Lesezugriff nochmal erhalten wird.
  68.    * Keinesfalls darf die Funktion zweimal hintereinander aufgerufen werden,
  69.    * ohne daß das zurückgestellte Zeichen zwischendurch gelesen wurde. In
  70.    * diesem Fall wird eine sofortige Fehlermeldung ausgelöst.
  71.    *)
  72.  
  73. PROCEDURE ReadLn (f: File);
  74.   (* Überliest alle Zeichen bis zum Zeilenende (einschließlich), höchstens
  75.    * bis zum Dateiende.
  76.    * Nach dem Aufruf liefert, sofern kein Fehler auftrat, die Funktion 'EOL'
  77.    * FALSE. Erst ein folgender Aufruf von 'Read' oder 'ReadString' erkennt
  78.    * einen evtl. direkt folgenden Zeilenbegrenzer.
  79.    *)
  80.  
  81.  
  82. PROCEDURE ReadBin (f: File; VAR ch: CHAR);
  83.   (* Holt ein Zeichen aus der Datei. Entgegen 'Read' wird auch jedes erhal-
  84.    * tene Controlzeichen zurückgeliefert, es werden also z.B. keine CR- und
  85.    * LF-Zeichen unterdrückt.
  86.    * Wenn die Datei auf 'CON:' eröffnet ist, werden die eingegebenen Zeichen,
  87.    * sofern sie keine Controlzeichen sind, auf dem Bildschirm ausgegeben.
  88.    *)
  89.  
  90.  
  91. PROCEDURE ReadString (f: File; VAR str: ARRAY OF CHAR);
  92.   (* Dies ist eine (ehemalige) mißlungene Mischung aus ReadFromLine
  93.    * und ReadToken:
  94.    * Sie liest alle Zeichen in den String ein, bis er voll ist oder
  95.    * ein Control-Zeichen gelesen wird.
  96.    * Im Gegensatz zu ReadToken werden also Leerzeichen mit in den
  97.    * String aufgenommen.
  98.    * Wir empfehlen, diese Funktion nicht mehr zu verwenden und stattdessen
  99.    * entweder 'ReadFromLine' oder 'ReadToken' - je nach Bedarf, zu verwenden.
  100.    *)
  101.  
  102. END Text.
  103.